package com.hlxy.fixdb.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

import com.hlxy.fixdb.common.DatabaseContextHolder;
import com.hlxy.fixdb.common.DatabaseType;

@Aspect
@Component
public class DataSourceAspect {

	@Pointcut("execution(* com.hlxy.fixdb.dao.pre.*.*(..))")
	public void preJointPointExpression() {
	}
	
	@Pointcut("execution(* com.hlxy.fixdb.dao.pro.*.*(..))")
	public void proJoinPointExpression(){
		
	}
	/**
	 * 使用定义切点表达式的方法进行切点表达式的引入
	 */
	@Before("preJointPointExpression()")
	public void setPreDataSourceKey(JoinPoint point) {
		DatabaseContextHolder.setDatabaseType(DatabaseType.PRE_PRODUCT_DB);
	}
	
	
	/**
	 * 使用定义切点表达式的方法进行切点表达式的引入
	 */
	@Before("proJoinPointExpression()")
	public void setProDataSourceKey(JoinPoint point) {
		DatabaseContextHolder.setDatabaseType(DatabaseType.PRODUCT_DB);
	}

}
